/**
 * @addtogroup edb_base_plug
 * edb_base_plug
 * @{
 */
/**
 * @file        edb_base_plug.h
 * @brief       XXXX
 * @note        XXXX
 * @author      靳普诏(puzhao.jin@hopechart.com)
 * @date        2025/03/29
 * @version     1.0

 * @par         修改日志
 * <table>
 * <tr><th>Date         <th>Version     <th>Author      <th> Description
 * <tr><td>2025/03/29   <td>1.0         <td>靳普诏       <td> 创建初始版本
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */

#ifndef _EDB_BASE_PLUG_H_
#define _EDB_BASE_PLUG_H_

#include "edb.h"

// typedef struct TEdbPlugTag TEdbPlug;

// typedef void (*TEdbPlugOnExecCallback)(TEdb *sender, void *user_param);
// typedef void (*TEdbPlugOnNotifyCallback)(TEdb *sender, void *user_param, UInt16 did);

// struct TEdbPlugTag
// {   
//     void *user_param;
//     TEdbPlugOnExecCallback OnInit;
//     TEdbPlugOnExecCallback OnOpen;
//     TEdbPlugOnExecCallback OnRunOnce;
//     TEdbPlugOnExecCallback OnClose;
//     TEdbPlugOnExecCallback OnDone;

//     TEdbPlugOnNotifyCallback OnValueChange;
// };


#ifdef __cplusplus
extern "C"
{
#endif

void EdbBasePlugInit(TEdb *sender, void *user_param);
void EdbBasePlugOpen(TEdb *sender, void *user_param);
void EdbBasePlugRunOnce(TEdb *sender, void *user_param);
void EdbBasePlugClose(TEdb *sender, void *user_param);
void EdbBasePlugDone(TEdb *sender, void *user_param);

void EdbBasePlugOnValueChange(TEdb *sender, void *user_param, UInt16 did);

#ifdef __cplusplus
}  ///< extern "C"
#endif

#endif  ///< _EDB_BASE_PLUG_H_


